#ifndef __ABILITY_FACTORY_H__
#define __ABILITY_FACTORY_H__

#pragma once

#include <Singleton.h>
#include <MemoryPoolFactory.h>

using namespace util;


class Ability;

class AbilityFactory : public Singleton<AbilityFactory>
{
public:
	AbilityFactory();
	virtual ~AbilityFactory();

	VOID			Init( DWORD dwMaxPoolSize );
	VOID			Release();
	Ability*		AllocAbility();
	VOID			FreeAbility( Ability* pAbility );

private:
	CMemoryPoolFactory<Ability> *		m_pAbilityPool;
};

#endif
